﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang.DAL;
using QuanLyBanHang.OBJECT;

namespace QuanLyBanHang
{
    public partial class frmDonViTinh : Form
    {
        public frmDonViTinh()
        {
            InitializeComponent();
        }
        int Action;
        private void frmDonViTinh_Load(object sender, EventArgs e)
        {
            LoadData();
            EnabledButtonTextbox(false,false);
            DgvClick();
        }
        private void LoadData()
        {
            DataTable dt = DalDonViTinh.LoadUnit();
            BindingSource bs = new BindingSource();
            bs.DataSource = dt;
            dgvDSDVT.DataSource = bs;
        }
        private void EnabledButtonTextbox(bool vl1,bool vl2)
        {
            txtID.Enabled = vl2;
            txtTen.Enabled = vl1;
            btnLuu.Visible = vl1;
            btnHuy.Visible = vl1;
        }
        private void DgvClick()
        {
            txtID.Text = dgvDSDVT.CurrentRow.Cells[0].Value.ToString();
            txtTen.Text = dgvDSDVT.CurrentRow.Cells[1].Value.ToString();
        }

        private void dgvDSDVT_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DgvClick();
            EnabledButtonTextbox(false, false);
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (Action == 1)
            {
                ObjDonViTinh obj = new ObjDonViTinh();
                obj.Ten = txtTen.Text;
                int thucthi = DalDonViTinh.InsertUnit(obj);
                if (thucthi > 0)
                {
                    MessageBox.Show("Đơn vị tính: " + obj.Ten.ToUpper() + " đã được thêm vào CSDL thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadData();
                    DgvClick();
                    EnabledButtonTextbox(false, false);
                }
                else
                    MessageBox.Show("Đơn vị tính: " + obj.Ten.ToUpper() + " chưa được thêm vào CSDL","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
            else
            {
                ObjDonViTinh obj = new ObjDonViTinh();
                obj.Ma = txtID.Text;
                obj.Ten = txtTen.Text;
                int thucthi = DalDonViTinh.UpdateUnit(obj);
                if (thucthi > 0)
                {
                    MessageBox.Show("Đơn vị tính: " + obj.Ten.ToUpper() + " đã được sửa thông tin thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadData();
                    DgvClick();
                    EnabledButtonTextbox(false, false);
                }
                else
                    MessageBox.Show("Đơn vị tính: " + obj.Ten.ToUpper() + " chưa được sửa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            EnabledButtonTextbox(false, false);
            DgvClick();
        }

        private void thêmToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Action = 1;
            txtID.Text = "";
            txtTen.Text = "";
            EnabledButtonTextbox(true, false);
            txtTen.Focus();
        }

        private void sửaHàngHóaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Action = 2;
            EnabledButtonTextbox(true, false);
            txtTen.Focus();
        }

        private void hủyThaoTácToolStripMenuItem_Click(object sender, EventArgs e)
        {
            btnHuy_Click(sender, e);
        }

        private void dgvDSDVT_SelectionChanged(object sender, EventArgs e)
        {
            DgvClick();
        }

        protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Escape)
            {
                this.Close();
                return base.ProcessDialogKey(keyData);
            }
            else
                return false;
        }

    }
}
